home *** CD-ROM | disk | FTP | other *** search
/ Network Supervisor's Toolkit / Network Supervisor's Toolkit.iso / tools / lu62 / proc / fsendat.c < prev    next >
C/C++ Source or Header  |  1996-07-10  |  2KB  |  79 lines

  1. /*
  2.  * CopyRight 1995. Nicholas Poljakov all rights reserved.
  3.  */
  4. #include <malloc.h>
  5. #include <stdio.h>
  6. #include <dos.h>
  7. #include <sendat.h>
  8. #include <state1.h>
  9.  
  10. send_data (tp_id,
  11.            conv_id,
  12.            p_data,
  13.            map_type,
  14.            map_name,
  15.            length,
  16.            p_rc,
  17.            p_rts)
  18.  
  19.  unsigned char tp_id[8];
  20.  unsigned long conv_id;
  21.   char far     *p_data;
  22.  unsigned   int length ;
  23.  unsigned  char * p_rts  ;
  24.  int map_type; /* not used */
  25.  int map_name; /* not used  */
  26.  
  27.  struct   rc {
  28.  unsigned   int   prim ;
  29.  unsigned   long  sec  ; }  *p_rc;
  30.  
  31.          {
  32.    struct send_data *ptr;
  33.        char _near *dp1;
  34.        char _near *dp2;
  35.    int l;
  36.  
  37.      l = sizeof(struct send_data);
  38.      if ((ptr = (char *)calloc(1,l)) == NULL)
  39.        {
  40.         p_rc->prim = PORT_BUSY; /* ¡ÑΓ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿ */
  41.         p_rc->sec = 0x00;
  42.         return(0);
  43.         }
  44.  
  45.         ptr->code=Send_data; /* kod primitiv */
  46.         ptr->e_cd=0x0000; /*  ex   */
  47.  
  48.         memcpy (ptr->tp_id,tp_id,8);
  49.  
  50.         ptr->conv_id = conv_id;
  51.  
  52.         ptr->data_addr=p_data ;
  53.         ptr->data_lt=length   ;
  54. /*
  55.      inregs.x.dx = FP_OFF(ptr);
  56.      segregs.ds = FP_SEG(ptr);
  57.      inregs.x.ax = ptr->code;
  58.  
  59.          int86x(0x68,&inregs,&outregs,&segregs);
  60.  */
  61.      dp1 = FP_OFF( ptr );
  62.      dp2 = FP_SEG( ptr );
  63.      _asm
  64.          {
  65.             push  ds
  66.             mov   dx, word ptr dp1[0]
  67.             mov   ax, word ptr dp2[0]
  68.             mov   ds, ax
  69.             mov   ax, Send_data
  70.             int   68h
  71.             pop   ds
  72.          }
  73.        *p_rts=ptr->rts;
  74.        p_rc->prim = ptr->prim_rc;
  75.        p_rc->sec  = ptr->sec_rc;
  76.                free(ptr);
  77.                return(0);
  78.          }
  79.